package it.irondev.appturismo.dao.example;

import java.util.ArrayList;
import java.util.List;

public class RouteExample {
    protected String orderByClause;

	protected boolean distinct;

	protected List<Criteria> oredCriteria;

	public RouteExample() {
		oredCriteria = new ArrayList<Criteria>();
	}

	public void setOrderByClause(String orderByClause) {
		this.orderByClause = orderByClause;
	}

	public String getOrderByClause() {
		return orderByClause;
	}

	public void setDistinct(boolean distinct) {
		this.distinct = distinct;
	}

	public boolean isDistinct() {
		return distinct;
	}

	public List<Criteria> getOredCriteria() {
		return oredCriteria;
	}

	public void or(Criteria criteria) {
		oredCriteria.add(criteria);
	}

	public Criteria or() {
		Criteria criteria = createCriteriaInternal();
		oredCriteria.add(criteria);
		return criteria;
	}

	public Criteria createCriteria() {
		Criteria criteria = createCriteriaInternal();
		if (oredCriteria.size() == 0) {
			oredCriteria.add(criteria);
		}
		return criteria;
	}

	protected Criteria createCriteriaInternal() {
		Criteria criteria = new Criteria();
		return criteria;
	}

	public void clear() {
		oredCriteria.clear();
		orderByClause = null;
		distinct = false;
	}

	protected abstract static class GeneratedCriteria {
		protected List<Criterion> criteria;

		protected GeneratedCriteria() {
			super();
			criteria = new ArrayList<Criterion>();
		}

		public boolean isValid() {
			return criteria.size() > 0;
		}

		public List<Criterion> getAllCriteria() {
			return criteria;
		}

		public List<Criterion> getCriteria() {
			return criteria;
		}

		protected void addCriterion(String condition) {
			if (condition == null) {
				throw new RuntimeException("Value for condition cannot be null");
			}
			criteria.add(new Criterion(condition));
		}

		protected void addCriterion(String condition, Object value,
				String property) {
			if (value == null) {
				throw new RuntimeException("Value for " + property
						+ " cannot be null");
			}
			criteria.add(new Criterion(condition, value));
		}

		protected void addCriterion(String condition, Object value1,
				Object value2, String property) {
			if (value1 == null || value2 == null) {
				throw new RuntimeException("Between values for " + property
						+ " cannot be null");
			}
			criteria.add(new Criterion(condition, value1, value2));
		}

		public Criteria andIdrouteIsNull() {
			addCriterion("idRoute is null");
			return (Criteria) this;
		}

		public Criteria andIdrouteIsNotNull() {
			addCriterion("idRoute is not null");
			return (Criteria) this;
		}

		public Criteria andIdrouteEqualTo(Integer value) {
			addCriterion("idRoute =", value, "idroute");
			return (Criteria) this;
		}

		public Criteria andIdrouteNotEqualTo(Integer value) {
			addCriterion("idRoute <>", value, "idroute");
			return (Criteria) this;
		}

		public Criteria andIdrouteGreaterThan(Integer value) {
			addCriterion("idRoute >", value, "idroute");
			return (Criteria) this;
		}

		public Criteria andIdrouteGreaterThanOrEqualTo(Integer value) {
			addCriterion("idRoute >=", value, "idroute");
			return (Criteria) this;
		}

		public Criteria andIdrouteLessThan(Integer value) {
			addCriterion("idRoute <", value, "idroute");
			return (Criteria) this;
		}

		public Criteria andIdrouteLessThanOrEqualTo(Integer value) {
			addCriterion("idRoute <=", value, "idroute");
			return (Criteria) this;
		}

		public Criteria andIdrouteIn(List<Integer> values) {
			addCriterion("idRoute in", values, "idroute");
			return (Criteria) this;
		}

		public Criteria andIdrouteNotIn(List<Integer> values) {
			addCriterion("idRoute not in", values, "idroute");
			return (Criteria) this;
		}

		public Criteria andIdrouteBetween(Integer value1, Integer value2) {
			addCriterion("idRoute between", value1, value2, "idroute");
			return (Criteria) this;
		}

		public Criteria andIdrouteNotBetween(Integer value1, Integer value2) {
			addCriterion("idRoute not between", value1, value2, "idroute");
			return (Criteria) this;
		}

		public Criteria andNameIsNull() {
			addCriterion("name is null");
			return (Criteria) this;
		}

		public Criteria andNameIsNotNull() {
			addCriterion("name is not null");
			return (Criteria) this;
		}

		public Criteria andNameEqualTo(String value) {
			addCriterion("name =", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameNotEqualTo(String value) {
			addCriterion("name <>", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameGreaterThan(String value) {
			addCriterion("name >", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameGreaterThanOrEqualTo(String value) {
			addCriterion("name >=", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameLessThan(String value) {
			addCriterion("name <", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameLessThanOrEqualTo(String value) {
			addCriterion("name <=", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameLike(String value) {
			addCriterion("name like", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameNotLike(String value) {
			addCriterion("name not like", value, "name");
			return (Criteria) this;
		}

		public Criteria andNameIn(List<String> values) {
			addCriterion("name in", values, "name");
			return (Criteria) this;
		}

		public Criteria andNameNotIn(List<String> values) {
			addCriterion("name not in", values, "name");
			return (Criteria) this;
		}

		public Criteria andNameBetween(String value1, String value2) {
			addCriterion("name between", value1, value2, "name");
			return (Criteria) this;
		}

		public Criteria andNameNotBetween(String value1, String value2) {
			addCriterion("name not between", value1, value2, "name");
			return (Criteria) this;
		}

		public Criteria andDescriptionIsNull() {
			addCriterion("description is null");
			return (Criteria) this;
		}

		public Criteria andDescriptionIsNotNull() {
			addCriterion("description is not null");
			return (Criteria) this;
		}

		public Criteria andDescriptionEqualTo(String value) {
			addCriterion("description =", value, "description");
			return (Criteria) this;
		}

		public Criteria andDescriptionNotEqualTo(String value) {
			addCriterion("description <>", value, "description");
			return (Criteria) this;
		}

		public Criteria andDescriptionGreaterThan(String value) {
			addCriterion("description >", value, "description");
			return (Criteria) this;
		}

		public Criteria andDescriptionGreaterThanOrEqualTo(String value) {
			addCriterion("description >=", value, "description");
			return (Criteria) this;
		}

		public Criteria andDescriptionLessThan(String value) {
			addCriterion("description <", value, "description");
			return (Criteria) this;
		}

		public Criteria andDescriptionLessThanOrEqualTo(String value) {
			addCriterion("description <=", value, "description");
			return (Criteria) this;
		}

		public Criteria andDescriptionLike(String value) {
			addCriterion("description like", value, "description");
			return (Criteria) this;
		}

		public Criteria andDescriptionNotLike(String value) {
			addCriterion("description not like", value, "description");
			return (Criteria) this;
		}

		public Criteria andDescriptionIn(List<String> values) {
			addCriterion("description in", values, "description");
			return (Criteria) this;
		}

		public Criteria andDescriptionNotIn(List<String> values) {
			addCriterion("description not in", values, "description");
			return (Criteria) this;
		}

		public Criteria andDescriptionBetween(String value1, String value2) {
			addCriterion("description between", value1, value2, "description");
			return (Criteria) this;
		}

		public Criteria andDescriptionNotBetween(String value1, String value2) {
			addCriterion("description not between", value1, value2,
					"description");
			return (Criteria) this;
		}

		public Criteria andDurationIsNull() {
			addCriterion("duration is null");
			return (Criteria) this;
		}

		public Criteria andDurationIsNotNull() {
			addCriterion("duration is not null");
			return (Criteria) this;
		}

		public Criteria andDurationEqualTo(String value) {
			addCriterion("duration =", value, "duration");
			return (Criteria) this;
		}

		public Criteria andDurationNotEqualTo(String value) {
			addCriterion("duration <>", value, "duration");
			return (Criteria) this;
		}

		public Criteria andDurationGreaterThan(String value) {
			addCriterion("duration >", value, "duration");
			return (Criteria) this;
		}

		public Criteria andDurationGreaterThanOrEqualTo(String value) {
			addCriterion("duration >=", value, "duration");
			return (Criteria) this;
		}

		public Criteria andDurationLessThan(String value) {
			addCriterion("duration <", value, "duration");
			return (Criteria) this;
		}

		public Criteria andDurationLessThanOrEqualTo(String value) {
			addCriterion("duration <=", value, "duration");
			return (Criteria) this;
		}

		public Criteria andDurationLike(String value) {
			addCriterion("duration like", value, "duration");
			return (Criteria) this;
		}

		public Criteria andDurationNotLike(String value) {
			addCriterion("duration not like", value, "duration");
			return (Criteria) this;
		}

		public Criteria andDurationIn(List<String> values) {
			addCriterion("duration in", values, "duration");
			return (Criteria) this;
		}

		public Criteria andDurationNotIn(List<String> values) {
			addCriterion("duration not in", values, "duration");
			return (Criteria) this;
		}

		public Criteria andDurationBetween(String value1, String value2) {
			addCriterion("duration between", value1, value2, "duration");
			return (Criteria) this;
		}

		public Criteria andDurationNotBetween(String value1, String value2) {
			addCriterion("duration not between", value1, value2, "duration");
			return (Criteria) this;
		}

		public Criteria andDifficultyIsNull() {
			addCriterion("difficulty is null");
			return (Criteria) this;
		}

		public Criteria andDifficultyIsNotNull() {
			addCriterion("difficulty is not null");
			return (Criteria) this;
		}

		public Criteria andDifficultyEqualTo(Integer value) {
			addCriterion("difficulty =", value, "difficulty");
			return (Criteria) this;
		}

		public Criteria andDifficultyNotEqualTo(Integer value) {
			addCriterion("difficulty <>", value, "difficulty");
			return (Criteria) this;
		}

		public Criteria andDifficultyGreaterThan(Integer value) {
			addCriterion("difficulty >", value, "difficulty");
			return (Criteria) this;
		}

		public Criteria andDifficultyGreaterThanOrEqualTo(Integer value) {
			addCriterion("difficulty >=", value, "difficulty");
			return (Criteria) this;
		}

		public Criteria andDifficultyLessThan(Integer value) {
			addCriterion("difficulty <", value, "difficulty");
			return (Criteria) this;
		}

		public Criteria andDifficultyLessThanOrEqualTo(Integer value) {
			addCriterion("difficulty <=", value, "difficulty");
			return (Criteria) this;
		}

		public Criteria andDifficultyIn(List<Integer> values) {
			addCriterion("difficulty in", values, "difficulty");
			return (Criteria) this;
		}

		public Criteria andDifficultyNotIn(List<Integer> values) {
			addCriterion("difficulty not in", values, "difficulty");
			return (Criteria) this;
		}

		public Criteria andDifficultyBetween(Integer value1, Integer value2) {
			addCriterion("difficulty between", value1, value2, "difficulty");
			return (Criteria) this;
		}

		public Criteria andDifficultyNotBetween(Integer value1, Integer value2) {
			addCriterion("difficulty not between", value1, value2, "difficulty");
			return (Criteria) this;
		}

		public Criteria andEmailIsNull() {
			addCriterion("email is null");
			return (Criteria) this;
		}

		public Criteria andEmailIsNotNull() {
			addCriterion("email is not null");
			return (Criteria) this;
		}

		public Criteria andEmailEqualTo(String value) {
			addCriterion("email =", value, "email");
			return (Criteria) this;
		}

		public Criteria andEmailNotEqualTo(String value) {
			addCriterion("email <>", value, "email");
			return (Criteria) this;
		}

		public Criteria andEmailGreaterThan(String value) {
			addCriterion("email >", value, "email");
			return (Criteria) this;
		}

		public Criteria andEmailGreaterThanOrEqualTo(String value) {
			addCriterion("email >=", value, "email");
			return (Criteria) this;
		}

		public Criteria andEmailLessThan(String value) {
			addCriterion("email <", value, "email");
			return (Criteria) this;
		}

		public Criteria andEmailLessThanOrEqualTo(String value) {
			addCriterion("email <=", value, "email");
			return (Criteria) this;
		}

		public Criteria andEmailLike(String value) {
			addCriterion("email like", value, "email");
			return (Criteria) this;
		}

		public Criteria andEmailNotLike(String value) {
			addCriterion("email not like", value, "email");
			return (Criteria) this;
		}

		public Criteria andEmailIn(List<String> values) {
			addCriterion("email in", values, "email");
			return (Criteria) this;
		}

		public Criteria andEmailNotIn(List<String> values) {
			addCriterion("email not in", values, "email");
			return (Criteria) this;
		}

		public Criteria andEmailBetween(String value1, String value2) {
			addCriterion("email between", value1, value2, "email");
			return (Criteria) this;
		}

		public Criteria andEmailNotBetween(String value1, String value2) {
			addCriterion("email not between", value1, value2, "email");
			return (Criteria) this;
		}

		public Criteria andLanguageIsNull() {
			addCriterion("language is null");
			return (Criteria) this;
		}

		public Criteria andLanguageIsNotNull() {
			addCriterion("language is not null");
			return (Criteria) this;
		}

		public Criteria andLanguageEqualTo(Integer value) {
			addCriterion("language =", value, "language");
			return (Criteria) this;
		}

		public Criteria andLanguageNotEqualTo(Integer value) {
			addCriterion("language <>", value, "language");
			return (Criteria) this;
		}

		public Criteria andLanguageGreaterThan(Integer value) {
			addCriterion("language >", value, "language");
			return (Criteria) this;
		}

		public Criteria andLanguageGreaterThanOrEqualTo(Integer value) {
			addCriterion("language >=", value, "language");
			return (Criteria) this;
		}

		public Criteria andLanguageLessThan(Integer value) {
			addCriterion("language <", value, "language");
			return (Criteria) this;
		}

		public Criteria andLanguageLessThanOrEqualTo(Integer value) {
			addCriterion("language <=", value, "language");
			return (Criteria) this;
		}

		public Criteria andLanguageIn(List<Integer> values) {
			addCriterion("language in", values, "language");
			return (Criteria) this;
		}

		public Criteria andLanguageNotIn(List<Integer> values) {
			addCriterion("language not in", values, "language");
			return (Criteria) this;
		}

		public Criteria andLanguageBetween(Integer value1, Integer value2) {
			addCriterion("language between", value1, value2, "language");
			return (Criteria) this;
		}

		public Criteria andLanguageNotBetween(Integer value1, Integer value2) {
			addCriterion("language not between", value1, value2, "language");
			return (Criteria) this;
		}

		public Criteria andGalleryIsNull() {
			addCriterion("gallery is null");
			return (Criteria) this;
		}

		public Criteria andGalleryIsNotNull() {
			addCriterion("gallery is not null");
			return (Criteria) this;
		}

		public Criteria andGalleryEqualTo(Integer value) {
			addCriterion("gallery =", value, "gallery");
			return (Criteria) this;
		}

		public Criteria andGalleryNotEqualTo(Integer value) {
			addCriterion("gallery <>", value, "gallery");
			return (Criteria) this;
		}

		public Criteria andGalleryGreaterThan(Integer value) {
			addCriterion("gallery >", value, "gallery");
			return (Criteria) this;
		}

		public Criteria andGalleryGreaterThanOrEqualTo(Integer value) {
			addCriterion("gallery >=", value, "gallery");
			return (Criteria) this;
		}

		public Criteria andGalleryLessThan(Integer value) {
			addCriterion("gallery <", value, "gallery");
			return (Criteria) this;
		}

		public Criteria andGalleryLessThanOrEqualTo(Integer value) {
			addCriterion("gallery <=", value, "gallery");
			return (Criteria) this;
		}

		public Criteria andGalleryIn(List<Integer> values) {
			addCriterion("gallery in", values, "gallery");
			return (Criteria) this;
		}

		public Criteria andGalleryNotIn(List<Integer> values) {
			addCriterion("gallery not in", values, "gallery");
			return (Criteria) this;
		}

		public Criteria andGalleryBetween(Integer value1, Integer value2) {
			addCriterion("gallery between", value1, value2, "gallery");
			return (Criteria) this;
		}

		public Criteria andGalleryNotBetween(Integer value1, Integer value2) {
			addCriterion("gallery not between", value1, value2, "gallery");
			return (Criteria) this;
		}
	}

	public static class Criteria extends GeneratedCriteria {
		protected Criteria() {
			super();
		}
	}

	public static class Criterion {
		private String condition;
		private Object value;
		private Object secondValue;
		private boolean noValue;
		private boolean singleValue;
		private boolean betweenValue;
		private boolean listValue;
		private String typeHandler;

		public String getCondition() {
			return condition;
		}

		public Object getValue() {
			return value;
		}

		public Object getSecondValue() {
			return secondValue;
		}

		public boolean isNoValue() {
			return noValue;
		}

		public boolean isSingleValue() {
			return singleValue;
		}

		public boolean isBetweenValue() {
			return betweenValue;
		}

		public boolean isListValue() {
			return listValue;
		}

		public String getTypeHandler() {
			return typeHandler;
		}

		protected Criterion(String condition) {
			super();
			this.condition = condition;
			this.typeHandler = null;
			this.noValue = true;
		}

		protected Criterion(String condition, Object value, String typeHandler) {
			super();
			this.condition = condition;
			this.value = value;
			this.typeHandler = typeHandler;
			if (value instanceof List<?>) {
				this.listValue = true;
			} else {
				this.singleValue = true;
			}
		}

		protected Criterion(String condition, Object value) {
			this(condition, value, null);
		}

		protected Criterion(String condition, Object value, Object secondValue,
				String typeHandler) {
			super();
			this.condition = condition;
			this.value = value;
			this.secondValue = secondValue;
			this.typeHandler = typeHandler;
			this.betweenValue = true;
		}

		protected Criterion(String condition, Object value, Object secondValue) {
			this(condition, value, secondValue, null);
		}
	}

	
}